
******************************************************************************************************************************************************************
******************************************************************************************************************************************************************
*************ONLINE APPENDIX for: "Cadasters and Economic Growth: A Long-Run Cross-Country Panel" D'Arcy, Nistotskaya & Olsson, JPE, R3, November, 2023*******************



************************************************************************************
***Appendix B***

************************************************************************************
***Figure B1: Mean levels of Farm density per sq km in western and eastern regions of Kingdom of Prussia, 1816-1882***
*Note: Coefficient plot of means*

use "${datapath}\cadaster_main.dta", clear

line cad year if year>=1600&cname=="Germany", yti(Cadaster score (Germany), size(medium)) xti(Year, size(medium))
	graph export "${outpath}\figb1.png", replace
	
	
************************************************************************************
***Table B2: Descriptive statistics and data spources for Prussian analysis		

use "${datapath}\cadaster_prussia.dta", clear

*Cadaster variables
sum cadaster_1808 cadaster_1867 if cadaster_1808!=. & ln_farms_area_1816!=.

*Outcome variables
sum ln_farms_area_1858 ln_farms_area_1882 if cadaster_1808!=. & ln_farms_area_1816!=.
sum lc_1849 lc_1864 cadaster_1808 if cadaster_1808!=. & lc_1816!=.

*Covariates
sum cadaster_1808 cadaster_1867 ln_farms_area_1816 if cadaster_1808!=. & ln_farms_area_1816!=. 
sum lc_1816 soil_loam_pc indu_pc1849 indu_pc1864 pop_urban_pc1849 pop_urban_pc1864 land_pc1849 land_pc1864 railaccess1849 railaccess1864 if cadaster_1808!=. & lc_1816!=.
	

*************************************************************************************
***Figure B2: Mean levels of Farm density per sq km and Land concentration (lower panel) in western and eastern regions of Kingdom of Prussia, 1816-1882***
*Note: Coefficient plot of means*

use "${datapath}\cadaster_prussia.dta", clear

*FD 1816
mean ln_farms_area_1816 if cadaster_1808==0
		estimates store eastf_1816
mean ln_farms_area_1816 if cadaster_1808==1
		estimates store westf_1816

*FD 1858
mean ln_farms_area_1858 if cadaster_1808==0 & farms_area_1816!=.
		estimates store eastf_1858
mean ln_farms_area_1858 if cadaster_1808==1 & farms_area_1816!=.
		estimates store westf_1858
		
*FD 1882
mean ln_farms_area_1882 if cadaster_1867==1 & farms_area_1816!=.
		estimates store eastf_1882
mean ln_farms_area_1882 if cadaster_1867==0 & farms_area_1816!=.
		estimates store westf_1882
		
coefplot eastf_1816 westf_1816 eastf_1858 westf_1858 eastf_1882 westf_1882, vertical ciopts(recast(rcap)) mlabel(@b) format(%12.2f) yti(Log Farm density) xti(Year, size(medium))

		
***Fig B2 (lower)		
*LC 1816
mean lc_1816 if cadaster_1808==0 
		estimates store eastlc_1816
mean lc_1816 if cadaster_1808==1
		estimates store westlc_1816

*LC 1849
mean lc_1849 if cadaster_1808==0 & lc_1816!=.
		estimates store eastlc_1849
mean lc_1849 if cadaster_1808==1 & lc_1816!=.
		estimates store westlc_1849

*LC 1864
mean lc_1864 if cadaster_1808==0 & lc_1816!=.
		estimates store eastlc_1864
mean lc_1864 if cadaster_1808==1 & lc_1816!=.
		estimates store westlc_1864
	
coefplot eastlc_1816 westlc_1816 eastlc_1849 westlc_1849 eastlc_1864 westlc_1864, vertical ciopts(recast(rcap)) mlabel(@b) format(%12.2f) yti(Land concentration (percent)) xti(Year, size(medium)) 



*************************************************************************************
***Appendix C***
*Tables

use "${datapath}\cadaster_main.dta", clear

***Table C1-C2: Descriptive tables***
*Note: Constructed manually on the basis of data info


**************************************************************
***Table C3: Data availability and cumulative cadastral reforms over time 
*Note: The number of countries with available data at different points in time for Cadaster and GDP per capita II over our study period. Cadastral reforms shows the cumulative number of reform episodes at different points in time where the absolute changes in Cadaster exceed 0.1. 

use "${datapath}\cadaster_main.dta", clear

sum cad if year==1500
sum cad if year==1800
sum cad if year==1900
sum cad if year==1950
sum cad if year==2000

***Cadastral improvements (#feforms>=0.1)***
sum cad_reform if year<=1500 & cad_reform>=0.1
sum cad_reform if year<=1800 & cad_reform>=0.1
sum cad_reform if year<=1900 & cad_reform>=0.1
sum cad_reform if year<=1950 & cad_reform>=0.1
sum cad_reform if year<=2000 & cad_reform>=0.1

***Cadastral reversals (#feforms<=0.1)***
sum cad_reform if year<=1500 & cad_reform<=-0.1 & cad_reform!=.
sum cad_reform if year<=1800 & cad_reform<=-0.1 & cad_reform!=.
sum cad_reform if year<=1900 & cad_reform<=-0.1 & cad_reform!=.
sum cad_reform if year<=1950 & cad_reform<=-0.1 & cad_reform!=.
sum cad_reform if year<=2000 & cad_reform<=-0.1 & cad_reform!=.

***GDP per capita II (Bolt and van Zanden, 2020) (#countries)***
sum gdppc if year==1500
sum gdppc if year==1800
sum gdppc if year==1900
sum gdppc if year==1950
sum gdppc if year==2000


************************************************************************************
*** Table C4: Correlation with Cadaster ***
*Note: Pearson correlation coefficient between our main variable cad and the World Bank's "Registering Property Indicators" (World Bank, 2022) as a proxy for transaction costs. See section 2.1 for a discussion about details.* 

use "${datapath}\cadaster_worldbank.dta"

pwcorr cad registerLegalindexGener registerReliabilityInfrast registerTransparency registerCoverage registerLegalBackground registerLegalBackground, obs star(99)



***********************************************************************************
***Table C5: Effect of Cadaster on the growth rate of GDP per capita, 1252-2015***

use "${datapath}\cadaster_main.dta", clear

sort ccode year	
xtset ccode year

*C1: 1252-*/
qui xtreg D.y2 cad D.L.y2  i.year, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc5.tex", replace ct(1252-) keep(cad D.L.y2)

*C2: 1252-*/
qui xtreg D.y2 cad D.L(1/4).y2  i.year, fe cluster(ccode)	
	outreg2 using "${outpath}\cadaster_tc5.tex", append ct(1252-) keep(cad D.L(1/4).y2)	
	
*C3: 1900-*/
qui xtreg D.y2 cad D.L.y2  i.year if year>=1900, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc5.tex", append ct(1900-) keep(cad D.L.y2)		

*C4: 1900-*/
qui xtreg D.y2 cad D.L(1/4).y2  i.year if year>=1900, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc5.tex", append ct(1900-) keep(cad D.L(1/4).y2)		
	
*C5: 1950-*/
qui xtreg D.y2 cad D.L.y2  i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc5.tex", append ct(1950-) keep(cad D.L.y2)	
	
*C6: 1950-*/
qui xtreg D.y2 cad D.L(1/2).y2  i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc5.tex", append ct(1950-) keep(cad D.L(1/2).y2)	
	
*C7: 1950-*/		
qui xtreg D.y2 cad D.L(1/4).y2  i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc5.tex", append ct(1950-) keep(cad D.L(1/4).y2)
	
*C8: 1950-*/
qui xtreg D.y2 cad D.L(1/8).y2  i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc5.tex", append ct(1950-) keep(cad D.L(1/4).y2)	


	
***************************************************************************************
***Table C6: Propensity for cadastral reforms (Maddison data, 1900-2015)***
*Note: This table shows the probit "first stage" of the ATET-analysis of full cadastral reforms in Figure 5 for 1900-2015. 
	
use "${datapath}\cadaster_main.dta", clear

*Probit analysis of full cadastral reform (Cadaster=1) in full sample in columns 1-3
*C1: Only 1 lag
qui probit cad_full lag1y2 if year>=1900&cname!="Kuwait"&cname!="Qatar"
	outreg2 using "${outpath}\cadaster_tc6.tex", replace ct(cad_full=1) keep(cad_full lag1y2 lag2y2 lag3y2 lag4y2) addtext(Year FE, NO)

*C2: 4 lags
qui probit cad_full lag1y2 lag2y2 lag3y2 lag4y2 if year>=1900&cname!="Kuwait"&cname!="Qatar"
	outreg2 using "${outpath}\cadaster_tc6.tex", append ct(cad_full=1) keep(cad_full lag1y2 lag2y2 lag3y2 lag4y2) addtext(Year FE, NO)

*C3: 4 lags and Year FE
qui probit cad_full lag1y2 lag2y2 lag3y2 lag4y2 i.year if year>=1900&cname!="Kuwait"&cname!="Qatar"
	outreg2 using "${outpath}\cadaster_tc6.tex", append ct(cad_full=1) keep(cad_full lag1y2 lag2y2 lag3y2 lag4y2 addtext(Year FE, YES)

*Probit analysis of full cadastral reform (c=1) in restricted sample excluding cadaster policy reversals in columns 4-6
*C4: Only 1 lag	
qui probit tcad lag1y2 if year>=1900&cname!="Kuwait"&cname!="Qatar"
	outreg2 using "${outpath}\cadaster_tc6.tex", append ct(tcad=1) keep(cad_full lag1y2 lag2y2 lag3y2 lag4y2) addtext(Year FE, NO)
	
*C5: 4 lags 
qui probit tcad lag1y2 lag2y2 lag3y2 lag4y2 if year>=1900&cname!="Kuwait"&cname!="Qatar"
	outreg2 using "${outpath}\cadaster_tc6.tex", append ct(tcad=1) keep(cad_full lag1y2 lag2y2 lag3y2 lag4y2) addtext(Year FE, NO)

*C6: 4 lags and Year FE
qui probit tcad lag1y2 lag2y2 lag3y2 lag4y2 i.year if year>=1900&cname!="Kuwait"&cname!="Qatar"
	outreg2 using "${outpath}\cadaster_tc6.tex", append ct(tcad=1) keep(cad_full lag1y2 lag2y2 lag3y2 lag4y2) addtext(Year FE, YES)	
	

*************************************************************************************
***Table C7: Robustness I: Income regressions excluding extreme outliers***
*Kuwait and Qatar are extreme outliers with g2>70% and 19% respectively. This table excludes the two countries in even columns. 

use "${datapath}\cadaster_main.dta", clear

sort ccode year	
xtset ccode year

*C1: 1252
qui xtreg y2 cad L(1/4).y2  i.year, fe cluster(ccode)	
	outreg2 using "${outpath}\cadaster_tc7.tex", replace ct(1252-)	keep(cad L(1/4).y2) nocons 
	
*C2: 1252, w/o Kuwait and Qatar
qui xtreg y2 cad L(1/4).y2  i.year if cname!="Kuwait"&cname!="Qatar", fe cluster(ccode)	
	outreg2 using "${outpath}\cadaster_tc7.tex", append	ct(1252-) keep(cad L(1/4).y2) nocons 

*C3: 1900
qui xtreg y2 cad L(1/4).y2 i.year if year>=1900, fe cluster(ccode)	
	outreg2 using "${outpath}\cadaster_tc7.tex", append	ct(1900-) keep(cad L(1/4).y2) nocons 
	
*C4: 1900, w/o Kuwait and Qatar
qui xtreg y2 cad L(1/4).y2 i.year if year>=1900 & cname!="Kuwait"&cname!="Qatar", fe cluster(ccode)	
	outreg2 using "${outpath}\cadaster_tc7.tex", append	ct(1900-) keep(cad L(1/4).y2) nocons 
	
*C5: 1950
qui xtreg y2 cad L(1/4).y2  i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc7.tex", append	ct(1950-) keep(cad L(1/4).y2) nocons 
	
*C6: 1950, w/o Kuwait and Qatar 
qui xtreg y2 cad L(1/4).y2  i.year if year>=1950 & cname!="Kuwait"&cname!="Qatar", fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc7.tex", append	ct(1950-) keep(cad L(1/4).y2) nocons 
	
	
*************************************************************************************
***Table C8: Robustness analysis II: Effect of Cadaster on GDP per capita, controlling for time-varying confounders (Maddison data, 1950-2015)
*Robustness table, including two dummies for full vs no cadaster and controls for levels of democracy, population density and infant mortality 

use "${datapath}\cadaster_main.dta", clear

sort ccode year	
xtset ccode year

*C1: Main specification
qui xtreg y cad L(1/4).y  i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc8.tex", replace ct(main) keep(cad) 

*C2: Dummy=1 for full cadaster
qui xtreg y cad_full L(1/4).y i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc8.tex", append ct(full) keep(cad_full) 

*C3: Dummy=1 for no cadaster	
qui xtreg y cad_no L(1/4).y i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc8.tex", append ct(no) keep(cad_no) 

*C4: Controlling for rule of law (rle)
qui xtreg y2 cad L(1/4).y2 rle i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc8.tex", append ct(polity) keep(cad rle) 

*C5: Controlling for democracy (libdem)
qui xtreg y cad L(1/4).y vdem_libdem i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc8.tex", append ct(libdem) keep(cad vdem_libdem) 

*C6: Controlling for population density (ln_popden)
qui xtreg y cad L(1/4).y ln_popden i.year if year>=1950, fe cluster(ccode)	
	outreg2 using "${outpath}\cadaster_tc8.tex", append ct(popden) keep(cad ln_popden)  

*C7: Controlling for infant mortality (wdi_mortinf) 
qui xtreg y cad L(1/4).y wdi_mortinf i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc8.tex", append ct(infmort) keep(cad wdi_mortinf) 

*C8: Controlling for democracy, population density, and infant mortality simultaneously*
qui xtreg y2 cad L(1/4).y2 vdem_libdem ln_popden wdi_mortinf i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc8.tex", append ct(all) keep(cad vdem_libdem ln_popden wdi_mortinf) 
	

	
************************************************************************************
***Table C9: Effect of Cadaster on gross, private, and non-private investment
*Investment as an intermediate mechanism  

use "${datapath}\cadaster_main.dta", clear

sort ccode year	
xtset ccode year

***Gross investment****
*CI: 1 lag y and I
qui xtreg inv_wdi cad l.inv_wdi l.ln_wb_gdp_pc  i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc9.tex", replace ct(grossinv) keep(cad) addtext(y lags, 1, I lags, 1)

*C2: 4 lags y and I 
qui xtreg inv_wdi cad l(1/4).inv_wdi l(1/4).ln_wb_gdp_pc  i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc9.tex", append ct(grossinv) keep(cad) addtext(y lags, 4, I lags, 4)

*C3: Cadaster 1 lag, 4 lags y and I
qui xtreg inv_wdi l.cad l(1/4).inv_wdi l(1/4).ln_wb_gdp_pc  i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc9.tex", append ct(grossinv) keep(l.cad) addtext(y lags, 4, I lags, 4)

*C4: Cadaster 2 lags, 4 lags y and I 
qui xtreg inv_wdi l2.cad l(1/4).inv_wdi l(1/4).ln_wb_gdp_pc  i.year if year>=1950, fe cluster(ccode)
	outreg2 using "${outpath}\cadaster_tc9.tex", append ct(grossinv) keep(l2.cad) addtext(y lags, 4, I lags, 4)

***Private investment (gross fixed capital formation, private sector)
*C5: Private investment, 4 lags y and I
qui xtreg invp cad l(1/4).invp l(1/4).ln_wb_gdp_pc  i.year if year>=1950, fe cluster(ccode) 
	outreg2 using "${outpath}\cadaster_tc9.tex", append ct(invpri) keep(cad) addtext(y lags, 4, I lags, 4)
	
*C6: Private investment, cadaster 1 lag, 4 lags y and I
qui xtreg invp l.cad l(1/4).invp l(1/4).ln_wb_gdp_pc  i.year if year>=1950, fe cluster(ccode) 
	outreg2 using "${outpath}\cadaster_tc8.tex", append ct(invpri) keep(l.cad) addtext(y lags, 4, I lags, 4)

***Non-private investment (Gross inv - private inv)
*C7: Non-private investment, 4 lags y and I
qui xtreg npinv cad l(1/4).npinv l(1/4).ln_wb_gdp_pc  i.year if year>=1950, fe cluster(ccode) 
	outreg2 using "${outpath}\cadaster_tc9.tex", append ct(npinv) keep(cad) addtext(y lags, 4, I lags, 4)
	
*C8: Non-private investment, cadaster 1 lag, 4 lags y and I
qui xtreg npinv l.cad l(1/4).npinv l(1/4).ln_wb_gdp_pc  i.year if year>=1950, fe cluster(ccode) 
	outreg2 using "${outpath}\cadaster_tc9.tex", append ct(npinv) keep(l.cad) addtext(y lags, 4, I lags, 4)


************************************************************************************	
***Table C10: Effect of Cadaster on the real interest rate in three countries, all available years
*Note: The table uses annual and 5-year moving average data on historical real interest rates from Schmelzing (2020) as the dependent variable and as a possible intermediate mechanism. 

use "${datapath}\cadaster_main.dta", clear

sort ccode year	
xtset ccode year

*Annual spot real interest rate*
qui reg real_rate cad L(1/4).real_rate L(1/4).g trend if cname=="United Kingdom", r
	outreg2 using "${outpath}\cadaster_tc10.tex", replace ct(UK) keep(cad) addtext(r lags, 4, g lags, 4, trend, YES)
qui reg real_rate cad L(1/4).real_rate L(1/4).g trend if cname=="France", r
	outreg2 using "${outpath}\cadaster_tc10.tex", append ct(France) keep(cad) addtext(r lags, 4, g lags, 4, trend, YES)
qui reg real_rate cad L(1/4).real_rate L(1/4).g trend if cname=="Netherlands", r
	outreg2 using "${outpath}\cadaster_tc10.tex", append ct(Netherlands) keep(cad) addtext(r lags, 4, g lags, 4, trend, YES)

*Natural real interest rate (5-year ma)*
qui reg realrate_ma5 cad L(1/4).realrate_ma5 L(1/4).g trend if cname=="United Kingdom", r
	outreg2 using "${outpath}\cadaster_tc10.tex", append ct(UK) keep(cad) addtext(r lags, 4, g lags, 4, trend, YES)
qui reg realrate_ma5 cad L(1/4).realrate_ma5 L(1/4).g trend if cname=="France", r
	outreg2 using "${outpath}\cadaster_tc10.tex", append ct(France) keep(cad) addtext(r lags, 4, g lags, 4, trend, YES)
qui reg realrate_ma5 cad L(1/4).realrate_ma5 L(1/4).g trend if cname=="Netherlands", r
	outreg2 using "${outpath}\cadaster_tc10.tex", append ct(Netherlands) keep(cad) addtext(r lags, 4, g lags, 4, trend, YES)

	
*Newey-West st errors for UK (only country with no missing data)*
newey real_rate cad L(1/4).real_rate L(1/4).g trend if cname=="United Kingdom", lag(4)
newey realrate_ma5 cad L(1/4).realrate_ma5 L(1/4).g trend if cname=="United Kingdom", lag(4)



******************************************************************************************************
***FIGURES***

***Figure C1***

use "${datapath}\cadaster_main.dta", clear

total cad, over(ccode) /*Produces total full cadaster years by country, used to create new data set "cadaster_total.dta"*/

use "${datapath}\cadaster_total", clear
*We drop Hong Kong with exactly the same data as China*/
histogram cad_tot, bin(40) percent
	graph export "${outpath}\fc1.png", replace

*Discussion about distribution in text
list country cad_tot
sum cad_tot, d


*************************************************************************************
***Figure C2: Effect of Cadaster on the Investment share of GDP, 1960-2015***
*Uses investment ratio from WDI as dependent variable and lagged Log GDP pc from WDI as controls (L(1/4).ln_wb_gdp_pc), rather than the Maddison data

use "${datapath}\cadaster_main.dta", clear

sort ccode year	
xtset ccode year

*Lead: 3
qui xtreg l3.inv_wdi cad l(4/7).inv_wdi l(4/7).ln_wb_gdp_pc  i.year if year>=1950, fe cluster(ccode)
	estimates store f3
*Lead: 2*
qui xtreg l2.inv_wdi cad l(3/6).inv_wdi l(3/6).ln_wb_gdp_pc  i.year if year>=1950, fe cluster(ccode)
	estimates store f2
*Lead: 1*
qui xtreg l1.inv_wdi cad l(2/5).inv_wdi l(2/5).ln_wb_gdp_pc  i.year if year>=1950, fe cluster(ccode)
	estimates store f1
*t = 0*
qui xtreg inv_wdi cad l(1/4).inv_wdi l(1/4).ln_wb_gdp_pc  i.year if year>=1950, fe cluster(ccode)
	estimates store l0
*Lag: 1*
qui xtreg f1.inv_wdi cad l(0/3).inv_wdi l(0/3).ln_wb_gdp_pc  i.year if year>=1950, fe cluster(ccode)
	estimates store l1
*Lag: 2*
qui xtreg f2.inv_wdi cad l(0/2).inv_wdi f1.inv_wdi l(0/2).ln_wb_gdp_pc f1.ln_wb_gdp_pc  i.year if year>=1950, fe cluster(ccode)
	estimates store l2
*Lag: 3*
qui xtreg f3.inv_wdi cad l(0/1).inv_wdi f(1/2).inv_wdi l(0,1).ln_wb_gdp_pc f(1/2).ln_wb_gdp_p  i.year if year>=1950, fe cluster(ccode)
	estimates store l3
*Lag: 4*
qui xtreg f4.inv_wdi cad f(0/3).inv_wdi f(0/3).ln_wb_gdp_pc  i.year if year>=1950, fe cluster(ccode)
	estimates store l4
*Lag: 5*
qui xtreg f5.inv_wdi cad f(1/4).inv_wdi f(1/4).ln_wb_gdp_pc  i.year if year>=1950, fe cluster(ccode)
	estimates store l5
*Lag: 6*
qui xtreg f6.inv_wdi cad f(2/5).inv_wdi f(2/5).ln_wb_gdp_pc  i.year if year>=1950, fe cluster(ccode)
	estimates store l6	

coefplot (f3 \f2 \f1 \l0 \l1 \l2 \l3 \l4 \l5 \l6), aseq swapnames vertical keep(cad) ciopts(recast(rcap)) mlabel(@b) format(%12.2f) yti(Cadaster estimate, size(medium)) xti(Time, size(medium))
	graph export "${outpath}\fc2.png", replace

